在上一篇,我們介紹了 RNN(循環神經網路)的基礎概念,並講到它在處理有順序性的資料時相當不錯,像是文字、影片或聲音。但我們也提到 RNN 會隨著時間慢慢忘記之前的資訊,這讓它在處理長期依賴的資料時,表現得並不那麼理想。
為了彌補這個缺點,LSTM(長短期記憶網路)就這樣被發明出來了。這篇文章,我們會帶大家看看 LSTM 的架構是怎麼設計的,為什麼它可以保留更多重要的資訊,並解決 RNN 記憶力不足的問題。
LSTM 是一種特殊的RNN,它的設計目的是為了克服 RNN 無法記住長時間序列的問題。LSTM 最大的特色就是在原本的 memory cell (記憶單元) 中加入了「Gate機制」,這些Gate可以由外部訊號來控制,進而調節資料的流動,這是一個基本的LSTM結構:
我們可以看到 LSTM 神經元比一般神經元複雜得多。一般神經元只有一個輸入和一個輸出,但 LSTM 神經元有四個輸入,分別是當前的輸入資料(想要被存進Memory Cell的資料)、操控Input Gate的訊號、操控Output Gate的訊號,以及操控Forget Gate的訊號。這些訊號共同決定 LSTM 的輸出結果,讓它能有效記住和處理長期的資訊。
LSTM裡面總共有三個主要的「Gate」:
這些Gate的功能分別是什麼呢?簡單來說,這些Gate的工作就是決定資料在LSTM中的流動狀況。
Input Gate
Input Gate的作用是控制有多少新資訊可以進入記憶單元。當我們有一個新的輸入訊號進來時,Input Gate會根據外部訊號來決定這些新資訊是否該被儲存。這個步驟就好像你在做決定時,會選擇性地記住一部分重要資訊,而忽略其他不重要的部分。
Forget Gate
Forget Gate的工作就是決定記憶單元中的哪些資訊需要被「忘記」。當外部訊號控制Forget Gate的開啟程度時,LSTM 會評估當前的記憶資料,決定哪些是有用的,哪些該被拋棄。這就好比我們在學習新東西時,會過濾掉一些過時或無用的資訊。
Output Gate
Output Gate則是控制記憶單元中的資訊能夠輸出多少。當LSTM 神經元處理完資料後,Output Gate會決定有多少內容要傳給下一個時間點的神經元,這樣系統就可以根據之前的資料做出判斷。
LSTM 的運作其實是非常簡單明瞭的。舉例來說,當一個新的輸入訊號進來,訊號首先會經過Input Gate,看看哪些重要資訊應該進入記憶單元。接著,系統會檢查記憶單元內的舊資料,透過Forget Gate來決定哪些要刪除,哪些要保留。最後,記憶單元中的資料會經由Output Gate,將適量的資訊輸出給下一個神經元。
總的來說,LSTM 是一個比 RNN 更聰明的記憶體架構。透過Gate機制,LSTM 可以有效解決 RNN 無法記住長期序列的缺點,並且更加靈活地處理時間序列資料。不管是應用在股市分析還是語言處理,LSTM 的強大功能都讓它成為了深度學習領域中的重要一環。
下一篇,我將以實際資料流入與流出 LSTM 的過程,舉例說明它如何在應用中運作。
[0]Recurrent Neural Network (Professor 李宏毅 #21-1)
[1]遞歸神經網路(RNN)和長短期記憶模型(LSTM)的運作原理